define("nivoslider/1.0.0/index-debug", ["jquery/1.10.2/jquery-debug"], function(require, exports, module) {
  var $ = require("jquery/1.10.2/jquery-debug");
  var NivoSlider = function(element, options) {
    // Defaults are below
    var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
    // Useful variables. Play carefully.
    var vars = {
      currentSlide: 0,
      currentImage: '',
      totalSlides: 0,
      running: false,
      paused: false,
      stop: false,
      controlNavEl: false
    };
    // Get this slider
    var slider = $(element);
    slider.data('nivo:vars', vars).addClass('nivoSlider');
    // Find our slider children
    var kids = slider.children();
    kids.each(function() {
      var child = $(this);
      var link = '';
      if (!child.is('img')) {
        if (child.is('a')) {
          child.addClass('nivo-imageLink');
          link = child;
        }
        child = child.find('img:first');
      }
      // Get img width & height
      var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
        childHeight = (childHeight === 0) ? child.attr('height') : child.height();
      if (link !== '') {
        link.css('display', 'none');
      }
      child.css('display', 'none');
      vars.totalSlides++;
    });
    // If randomStart
    if (settings.randomStart) {
      settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
    }
    // Set startSlide
    if (settings.startSlide > 0) {
      if (settings.startSlide >= vars.totalSlides) {
        settings.startSlide = vars.totalSlides - 1;
      }
      vars.currentSlide = settings.startSlide;
    }
    // Get initial image
    if ($(kids[vars.currentSlide]).is('img')) {
      vars.currentImage = $(kids[vars.currentSlide]);
    } else {
      vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
    }
    // Show initial link
    if ($(kids[vars.currentSlide]).is('a')) {
      $(kids[vars.currentSlide]).css('display', 'block');
    }
    // Set first background
    var sliderImg = $('<img/>').addClass('nivo-main-image');
    sliderImg.attr('src', vars.currentImage.attr('src')).show();
    slider.append(sliderImg);
    // Detect Window Resize
    $(window).resize(function() {
      slider.children('img').width(slider.width());
      sliderImg.attr('src', vars.currentImage.attr('src'));
      sliderImg.stop().height('auto');
      $('.nivo-slice').remove();
      $('.nivo-box').remove();
    });
    //Create caption
    slider.append($('<div class="nivo-caption"></div>'));
    // Process caption function
    var processCaption = function(settings) {
        var nivoCaption = $('.nivo-caption', slider);
        if (vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined) {
          var title = vars.currentImage.attr('title');
          if (title.substr(0, 1) == '#') title = $(title).html();
          if (nivoCaption.css('display') == 'block') {
            setTimeout(function() {
              nivoCaption.html(title);
            }, settings.animSpeed);
          } else {
            nivoCaption.html(title);
            nivoCaption.stop().fadeIn(settings.animSpeed);
          }
        } else {
          nivoCaption.stop().fadeOut(settings.animSpeed);
        }
      }
      //Process initial  caption
    processCaption(settings);
    // In the words of Super Mario "let's a go!"
    var timer = 0;
    if (!settings.manualAdvance && kids.length > 1) {
      timer = setInterval(function() {
        nivoRun(slider, kids, settings, false);
      }, settings.pauseTime);
    }
    // Add Direction nav
    if (settings.directionNav) {
      slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">' + settings.prevText + '</a><a class="nivo-nextNav">' + settings.nextText + '</a></div>');
      $(slider).on('click', 'a.nivo-prevNav', function() {
        if (vars.running) {
          return false;
        }
        clearInterval(timer);
        timer = '';
        vars.currentSlide -= 2;
        nivoRun(slider, kids, settings, 'prev');
      });
      $(slider).on('click', 'a.nivo-nextNav', function() {
        if (vars.running) {
          return false;
        }
        clearInterval(timer);
        timer = '';
        nivoRun(slider, kids, settings, 'next');
      });
    }
    // Add Control nav
    if (settings.controlNav) {
      vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
      slider.after(vars.controlNavEl);
      for (var i = 0; i < kids.length; i++) {
        if (settings.controlNavThumbs) {
          vars.controlNavEl.addClass('nivo-thumbs-enabled');
          var child = kids.eq(i);
          if (!child.is('img')) {
            child = child.find('img:first');
          }
          if (child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="' + i + '"><img src="' + child.attr('data-thumb') + '" alt="" /></a>');
        } else {
          vars.controlNavEl.append('<a class="nivo-control" rel="' + i + '">' + (i + 1) + '</a>');
        }
      }
      //Set initial active link
      $('a:eq(' + vars.currentSlide + ')', vars.controlNavEl).addClass('active');
      $('a', vars.controlNavEl).bind('click', function() {
        if (vars.running) return false;
        if ($(this).hasClass('active')) return false;
        clearInterval(timer);
        timer = '';
        sliderImg.attr('src', vars.currentImage.attr('src'));
        vars.currentSlide = $(this).attr('rel') - 1;
        nivoRun(slider, kids, settings, 'control');
      });
    }
    //For pauseOnHover setting
    if (settings.pauseOnHover) {
      slider.hover(function() {
        vars.paused = true;
        clearInterval(timer);
        timer = '';
      }, function() {
        vars.paused = false;
        // Restart the timer
        if (timer === '' && !settings.manualAdvance) {
          timer = setInterval(function() {
            nivoRun(slider, kids, settings, false);
          }, settings.pauseTime);
        }
      });
    }
    // Event when Animation finishes
    slider.bind('nivo:animFinished', function() {
      sliderImg.attr('src', vars.currentImage.attr('src'));
      vars.running = false;
      // Hide child links
      $(kids).each(function() {
        if ($(this).is('a')) {
          $(this).css('display', 'none');
        }
      });
      // Show current link
      if ($(kids[vars.currentSlide]).is('a')) {
        $(kids[vars.currentSlide]).css('display', 'block');
      }
      // Restart the timer
      if (timer === '' && !vars.paused && !settings.manualAdvance) {
        timer = setInterval(function() {
          nivoRun(slider, kids, settings, false);
        }, settings.pauseTime);
      }
      // Trigger the afterChange callback
      settings.afterChange.call(this);
    });
    // Add slices for slice animations
    var createSlices = function(slider, settings, vars) {
      if ($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display', 'block');
      $('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
      var sliceHeight = ($('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').height();
      for (var i = 0; i < settings.slices; i++) {
        var sliceWidth = Math.round(slider.width() / settings.slices);
        if (i === settings.slices - 1) {
          slider.append($('<div class="nivo-slice" name="' + i + '"><img src="' + vars.currentImage.attr('src') + '" style="position:absolute; width:' + slider.width() + 'px; height:auto; display:block !important; top:0; left:-' + ((sliceWidth + (i * sliceWidth)) - sliceWidth) + 'px;" /></div>').css({
            left: (sliceWidth * i) + 'px',
            width: (slider.width() - (sliceWidth * i)) + 'px',
            height: sliceHeight + 'px',
            opacity: '0',
            overflow: 'hidden'
          }));
        } else {
          slider.append($('<div class="nivo-slice" name="' + i + '"><img src="' + vars.currentImage.attr('src') + '" style="position:absolute; width:' + slider.width() + 'px; height:auto; display:block !important; top:0; left:-' + ((sliceWidth + (i * sliceWidth)) - sliceWidth) + 'px;" /></div>').css({
            left: (sliceWidth * i) + 'px',
            width: sliceWidth + 'px',
            height: sliceHeight + 'px',
            opacity: '0',
            overflow: 'hidden'
          }));
        }
      }
      $('.nivo-slice', slider).height(sliceHeight);
      sliderImg.stop().animate({
        height: $(vars.currentImage).height()
      }, settings.animSpeed);
    };
    // Add boxes for box animations
    var createBoxes = function(slider, settings, vars) {
      if ($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display', 'block');
      $('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
      var boxWidth = Math.round(slider.width() / settings.boxCols),
        boxHeight = Math.round($('img[src="' + vars.currentImage.attr('src') + '"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
      for (var rows = 0; rows < settings.boxRows; rows++) {
        for (var cols = 0; cols < settings.boxCols; cols++) {
          if (cols === settings.boxCols - 1) {
            slider.append($('<div class="nivo-box" name="' + cols + '" rel="' + rows + '"><img src="' + vars.currentImage.attr('src') + '" style="position:absolute; width:' + slider.width() + 'px; height:auto; display:block; top:-' + (boxHeight * rows) + 'px; left:-' + (boxWidth * cols) + 'px;" /></div>').css({
              opacity: 0,
              left: (boxWidth * cols) + 'px',
              top: (boxHeight * rows) + 'px',
              width: (slider.width() - (boxWidth * cols)) + 'px'
            }));
            $('.nivo-box[name="' + cols + '"]', slider).height($('.nivo-box[name="' + cols + '"] img', slider).height() + 'px');
          } else {
            slider.append($('<div class="nivo-box" name="' + cols + '" rel="' + rows + '"><img src="' + vars.currentImage.attr('src') + '" style="position:absolute; width:' + slider.width() + 'px; height:auto; display:block; top:-' + (boxHeight * rows) + 'px; left:-' + (boxWidth * cols) + 'px;" /></div>').css({
              opacity: 0,
              left: (boxWidth * cols) + 'px',
              top: (boxHeight * rows) + 'px',
              width: boxWidth + 'px'
            }));
            $('.nivo-box[name="' + cols + '"]', slider).height($('.nivo-box[name="' + cols + '"] img', slider).height() + 'px');
          }
        }
      }
      sliderImg.stop().animate({
        height: $(vars.currentImage).height()
      }, settings.animSpeed);
    };
    // Private run method
    var nivoRun = function(slider, kids, settings, nudge) {
      // Get our vars
      var vars = slider.data('nivo:vars');
      // Trigger the lastSlide callback
      if (vars && (vars.currentSlide === vars.totalSlides - 1)) {
        settings.lastSlide.call(this);
      }
      // Stop
      if ((!vars || vars.stop) && !nudge) {
        return false;
      }
      // Trigger the beforeChange callback
      settings.beforeChange.call(this);
      // Set current background before change
      if (!nudge) {
        sliderImg.attr('src', vars.currentImage.attr('src'));
      } else {
        if (nudge === 'prev') {
          sliderImg.attr('src', vars.currentImage.attr('src'));
        }
        if (nudge === 'next') {
          sliderImg.attr('src', vars.currentImage.attr('src'));
        }
      }
      vars.currentSlide++;
      // Trigger the slideshowEnd callback
      if (vars.currentSlide === vars.totalSlides) {
        vars.currentSlide = 0;
        settings.slideshowEnd.call(this);
      }
      if (vars.currentSlide < 0) {
        vars.currentSlide = (vars.totalSlides - 1);
      }
      // Set vars.currentImage
      if ($(kids[vars.currentSlide]).is('img')) {
        vars.currentImage = $(kids[vars.currentSlide]);
      } else {
        vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
      }
      // Set active links
      if (settings.controlNav) {
        $('a', vars.controlNavEl).removeClass('active');
        $('a:eq(' + vars.currentSlide + ')', vars.controlNavEl).addClass('active');
      }
      // Process caption
      processCaption(settings);
      // Remove any slices from last transition
      $('.nivo-slice', slider).remove();
      // Remove any boxes from last transition
      $('.nivo-box', slider).remove();
      var currentEffect = settings.effect,
        anims = '';
      // Generate random effect
      if (settings.effect === 'random') {
        anims = new Array('sliceDownRight', 'sliceDownLeft', 'sliceUpRight', 'sliceUpLeft', 'sliceUpDown', 'sliceUpDownLeft', 'fold', 'fade', 'boxRandom', 'boxRain', 'boxRainReverse', 'boxRainGrow', 'boxRainGrowReverse');
        currentEffect = anims[Math.floor(Math.random() * (anims.length + 1))];
        if (currentEffect === undefined) {
          currentEffect = 'fade';
        }
      }
      // Run random effect from specified set (eg: effect:'fold,fade')
      if (settings.effect.indexOf(',') !== -1) {
        anims = settings.effect.split(',');
        currentEffect = anims[Math.floor(Math.random() * (anims.length))];
        if (currentEffect === undefined) {
          currentEffect = 'fade';
        }
      }
      // Custom transition as defined by "data-transition" attribute
      if (vars.currentImage.attr('data-transition')) {
        currentEffect = vars.currentImage.attr('data-transition');
      }
      // Run effects
      vars.running = true;
      var timeBuff = 0,
        i = 0,
        slices = '',
        firstSlice = '',
        totalBoxes = '',
        boxes = '';
      if (currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft') {
        createSlices(slider, settings, vars);
        timeBuff = 0;
        i = 0;
        slices = $('.nivo-slice', slider);
        if (currentEffect === 'sliceDownLeft') {
          slices = $('.nivo-slice', slider)._reverse();
        }
        slices.each(function() {
          var slice = $(this);
          slice.css({
            'top': '0px'
          });
          if (i === settings.slices - 1) {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed, '', function() {
                slider.trigger('nivo:animFinished');
              });
            }, (100 + timeBuff));
          } else {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed);
            }, (100 + timeBuff));
          }
          timeBuff += 50;
          i++;
        });
      } else if (currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft') {
        createSlices(slider, settings, vars);
        timeBuff = 0;
        i = 0;
        slices = $('.nivo-slice', slider);
        if (currentEffect === 'sliceUpLeft') {
          slices = $('.nivo-slice', slider)._reverse();
        }
        slices.each(function() {
          var slice = $(this);
          slice.css({
            'bottom': '0px'
          });
          if (i === settings.slices - 1) {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed, '', function() {
                slider.trigger('nivo:animFinished');
              });
            }, (100 + timeBuff));
          } else {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed);
            }, (100 + timeBuff));
          }
          timeBuff += 50;
          i++;
        });
      } else if (currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft') {
        createSlices(slider, settings, vars);
        timeBuff = 0;
        i = 0;
        var v = 0;
        slices = $('.nivo-slice', slider);
        if (currentEffect === 'sliceUpDownLeft') {
          slices = $('.nivo-slice', slider)._reverse();
        }
        slices.each(function() {
          var slice = $(this);
          if (i === 0) {
            slice.css('top', '0px');
            i++;
          } else {
            slice.css('bottom', '0px');
            i = 0;
          }
          if (v === settings.slices - 1) {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed, '', function() {
                slider.trigger('nivo:animFinished');
              });
            }, (100 + timeBuff));
          } else {
            setTimeout(function() {
              slice.animate({
                opacity: '1.0'
              }, settings.animSpeed);
            }, (100 + timeBuff));
          }
          timeBuff += 50;
          v++;
        });
      } else if (currentEffect === 'fold') {
        createSlices(slider, settings, vars);
        timeBuff = 0;
        i = 0;
        $('.nivo-slice', slider).each(function() {
          var slice = $(this);
          var origWidth = slice.width();
          slice.css({
            top: '0px',
            width: '0px'
          });
          if (i === settings.slices - 1) {
            setTimeout(function() {
              slice.animate({
                width: origWidth,
                opacity: '1.0'
              }, settings.animSpeed, '', function() {
                slider.trigger('nivo:animFinished');
              });
            }, (100 + timeBuff));
          } else {
            setTimeout(function() {
              slice.animate({
                width: origWidth,
                opacity: '1.0'
              }, settings.animSpeed);
            }, (100 + timeBuff));
          }
          timeBuff += 50;
          i++;
        });
      } else if (currentEffect === 'fade') {
        createSlices(slider, settings, vars);
        firstSlice = $('.nivo-slice:first', slider);
        firstSlice.css({
          'width': slider.width() + 'px'
        });
        firstSlice.animate({
          opacity: '1.0'
        }, (settings.animSpeed * 2), '', function() {
          slider.trigger('nivo:animFinished');
        });
      } else if (currentEffect === 'slideInRight') {
        createSlices(slider, settings, vars);
        firstSlice = $('.nivo-slice:first', slider);
        firstSlice.css({
          'width': '0px',
          'opacity': '1'
        });
        firstSlice.animate({
          width: slider.width() + 'px'
        }, (settings.animSpeed * 2), '', function() {
          slider.trigger('nivo:animFinished');
        });
      } else if (currentEffect === 'slideInLeft') {
        createSlices(slider, settings, vars);
        firstSlice = $('.nivo-slice:first', slider);
        firstSlice.css({
          'width': '0px',
          'opacity': '1',
          'left': '',
          'right': '0px'
        });
        firstSlice.animate({
          width: slider.width() + 'px'
        }, (settings.animSpeed * 2), '', function() {
          // Reset positioning
          firstSlice.css({
            'left': '0px',
            'right': ''
          });
          slider.trigger('nivo:animFinished');
        });
      } else if (currentEffect === 'boxRandom') {
        createBoxes(slider, settings, vars);
        totalBoxes = settings.boxCols * settings.boxRows;
        i = 0;
        timeBuff = 0;
        boxes = shuffle($('.nivo-box', slider));
        boxes.each(function() {
          var box = $(this);
          if (i === totalBoxes - 1) {
            setTimeout(function() {
              box.animate({
                opacity: '1'
              }, settings.animSpeed, '', function() {
                slider.trigger('nivo:animFinished');
              });
            }, (100 + timeBuff));
          } else {
            setTimeout(function() {
              box.animate({
                opacity: '1'
              }, settings.animSpeed);
            }, (100 + timeBuff));
          }
          timeBuff += 20;
          i++;
        });
      } else if (currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse') {
        createBoxes(slider, settings, vars);
        totalBoxes = settings.boxCols * settings.boxRows;
        i = 0;
        timeBuff = 0;
        // Split boxes into 2D array
        var rowIndex = 0;
        var colIndex = 0;
        var box2Darr = [];
        box2Darr[rowIndex] = [];
        boxes = $('.nivo-box', slider);
        if (currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse') {
          boxes = $('.nivo-box', slider)._reverse();
        }
        boxes.each(function() {
          box2Darr[rowIndex][colIndex] = $(this);
          colIndex++;
          if (colIndex === settings.boxCols) {
            rowIndex++;
            colIndex = 0;
            box2Darr[rowIndex] = [];
          }
        });
        // Run animation
        for (var cols = 0; cols < (settings.boxCols * 2); cols++) {
          var prevCol = cols;
          for (var rows = 0; rows < settings.boxRows; rows++) {
            if (prevCol >= 0 && prevCol < settings.boxCols) {
              /* Due to some weird JS bug with loop vars 
                        being used in setTimeout, this is wrapped
                        with an anonymous function call */
              (function(row, col, time, i, totalBoxes) {
                var box = $(box2Darr[row][col]);
                var w = box.width();
                var h = box.height();
                if (currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse') {
                  box.width(0).height(0);
                }
                if (i === totalBoxes - 1) {
                  setTimeout(function() {
                    box.animate({
                      opacity: '1',
                      width: w,
                      height: h
                    }, settings.animSpeed / 1.3, '', function() {
                      slider.trigger('nivo:animFinished');
                    });
                  }, (100 + time));
                } else {
                  setTimeout(function() {
                    box.animate({
                      opacity: '1',
                      width: w,
                      height: h
                    }, settings.animSpeed / 1.3);
                  }, (100 + time));
                }
              })(rows, prevCol, timeBuff, i, totalBoxes);
              i++;
            }
            prevCol--;
          }
          timeBuff += 100;
        }
      }
    };
    // Shuffle an array
    var shuffle = function(arr) {
      for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
      return arr;
    };
    // For debugging
    var trace = function(msg) {
      if (this.console && typeof console.log !== 'undefined') {
        console.log(msg);
      }
    };
    // Start / Stop
    this.stop = function() {
      if (!$(element).data('nivo:vars').stop) {
        $(element).data('nivo:vars').stop = true;
        trace('Stop Slider');
      }
    };
    this.start = function() {
      if ($(element).data('nivo:vars').stop) {
        $(element).data('nivo:vars').stop = false;
        trace('Start Slider');
      }
    };
    // Trigger the afterLoad callback
    settings.afterLoad.call(this);
    return this;
  };
  $.fn.nivoSlider = function(options) {
    return this.each(function(key, value) {
      var element = $(this);
      // Return early if this element already has a plugin instance
      if (element.data('nivoslider')) {
        return element.data('nivoslider');
      }
      // Pass options to plugin constructor
      var nivoslider = new NivoSlider(this, options);
      // Store plugin object in this element's data
      element.data('nivoslider', nivoslider);
    });
  };
  //Default settings
  $.fn.nivoSlider.defaults = {
    effect: 'random',
    slices: 15,
    boxCols: 8,
    boxRows: 4,
    animSpeed: 500,
    pauseTime: 3000,
    startSlide: 0,
    directionNav: true,
    controlNav: true,
    controlNavThumbs: false,
    pauseOnHover: true,
    manualAdvance: false,
    prevText: 'Prev',
    nextText: 'Next',
    randomStart: false,
    beforeChange: function() {},
    afterChange: function() {},
    slideshowEnd: function() {},
    lastSlide: function() {},
    afterLoad: function() {}
  };
  $.fn._reverse = [].reverse;
  exports.nivoSlider = function(selector, options) {
    $(selector).nivoSlider(options);
  };
});